# 导包
import requests
import unittest
from api.login import LoginAPI
import json
import app
from parameterized import parameterized
# 构建测试数据
def build_data():
    # 定义一个空列表
    test_data = []
    file = app.BASE_DIR + "/data/login.json"
    with open(file,encoding="utf-8") as f:
        json_data = json.load(f)
        for case_data in json_data:
            login_data = case_data.get("login_data")
            status_code = case_data.get("status_code")
            success = case_data.get("success")
            code = case_data.get("code")
            message = case_data.get("message")
            test_data.append((login_data,status_code,success,code,message))
            print(test_data)
    return test_data
# 创建测试类
class Test01_Login(unittest.TestCase):
    # 前置处理
    def setUp(self):
        self.api_login = LoginAPI()     # 实例化接口对象
    # 后置处理
    # def tearDown(self):
    #     if self.session:
    #         self.session.close()
    @parameterized.expand(build_data())
    # 创建测试方法
    def test001_login(self,login_data,status_code,success,code,message):
        # 调用登录接口获取信息，并进行断言
        response = self.api_login.login(login_data)
        # print(response.json())
        self.assertEqual(status_code,response.status_code)
        self.assertEqual(success,response.json().get("success"))
        self.assertEqual(code,response.json().get("code"))
        self.assertIn(message,response.json().get("message"))
